A federated database is made up of a number of interconnected database management systems (DBMSs), each of which manages one or more databases. The federated database allows a single query to access the databases through the interconnected DBMSs. The query is received by the federated database and propagated over connections between the various DBMSs. DBMSs that control databases targeted by the query then translate the query into actions that are compatible with the databases they control.
As the size of a federated database increases, various scaling problems can occur. For example, as new DBMSs are added to the federated database, the number of connections between the DBMSs may increase in a combinatorial fashion. This can lead to an unwieldy number of connections in a federated database that contains only a moderate number of DBMSs. Further, the network topology of the federated database may also lead to data that is inaccessible following the failure of a connection or DBMS. Additionally, when a query is made to the database federation, the communication overhead in distributing the query to all of the DBMSs can be significant. Another problem that can be associated with federated databases is that receiving and updating data, such as logical statements, can involve a significant amount of overhead to ensure that all instances of the data are updated and correctly indexed for searching.